package cn.wlh.learn.webmagic.utils;

import cn.hutool.core.util.StrUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * 用于遍历的工具类
 */
public abstract class ForEachUtils {
    private ForEachUtils(){};

    /**
     * 格式化。 把list 遍历 成template模板对应的内容。<br/>
     * 支持三种<br/>
     * <pre>
     * jdk: String.format(template, obj);
     * hutool: StrUtil.format(template,obj);
     * java: 追加 format += obj;
     * </pre>
     *
     * @param template
     * @param list
     * @return
     */
    public static List<String> format(String template, List<?> list ) {
        int size = list.size();
        List<String> stringList = new ArrayList<>(size);
        String obj = null;
        String format = null;
        for (int i = 0; i < size; i++) {
            obj = StrUtil.utf8Str(list.get(i));
            //
            if(template == null){
                stringList.add(obj);
                continue;
            }
            // 第一种格式，
            format = String.format(template, obj);

            // 第二种格式， hutool
            if(StrUtil.equals(template,format)){
                format = StrUtil.format(template,obj);
            }
            // 第三种格式， 追加。
            if(StrUtil.equals(template,format)){
                format += obj;
            }
            //
            stringList.add(format);
        }
        return stringList;
    }


}
